
#ifndef __RENDERSTATE_H__
#define __RENDERSTATE_H__

#define STATE(X)     X##State
#define _STATE(X) _##X##State
#define NEWSTATE(X) class STATE(X) : public RenderState { public: void Render(); };

class RenderState
{
public:
	virtual void Render() = 0;
};

NEWSTATE(MainMenu)
NEWSTATE(CreateGame)
NEWSTATE(JoinGame)
NEWSTATE(Settings)
NEWSTATE(_3D)
NEWSTATE(Loading)

extern MainMenuState *_MainMenuState;

#endif // __RENDERSTATE_H__